using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("Logger")]
	public class Logger : MonoClass
	{
		public static string OUTPUT_DIRECTORY_NAME => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Logger", "OUTPUT_DIRECTORY_NAME");

		public static string OUTPUT_FILE_EXTENSION => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Logger", "OUTPUT_FILE_EXTENSION");

		public string m_name => method_4("m_name");

		public bool m_fileWriterInitialized => method_2<bool>("m_fileWriterInitialized");

		public Logger(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Logger(IntPtr address)
			: this(address, "Logger")
		{
		}

		public bool CanPrint(LogTarget target, LogLevel level, bool verbose)
		{
			return method_10<bool>("CanPrint", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean
			}, new object[3] { target, level, verbose });
		}

		public bool CanPrint()
		{
			return method_10<bool>("CanPrint", new Class276.Enum20[0], Array.Empty<object>());
		}

		public LogLevel GetDefaultLevel()
		{
			return method_11<LogLevel>("GetDefaultLevel", Array.Empty<object>());
		}

		public bool ShouldAlwaysPrintErrors()
		{
			return method_11<bool>("ShouldAlwaysPrintErrors", Array.Empty<object>());
		}

		public bool IsVerbose()
		{
			return method_11<bool>("IsVerbose", Array.Empty<object>());
		}

		public void Print(LogLevel level, bool verbose, string message)
		{
			method_9("Print", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean,
				Class276.Enum20.String
			}, level, verbose, message);
		}

		public void FilePrint(LogLevel level, bool verbose, string message)
		{
			method_9("FilePrint", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean,
				Class276.Enum20.String
			}, level, verbose, message);
		}

		public void ConsolePrint(LogLevel level, bool verbose, string message)
		{
			method_9("ConsolePrint", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean,
				Class276.Enum20.String
			}, level, verbose, message);
		}

		public void ScreenPrint(LogLevel level, bool verbose, string message)
		{
			method_9("ScreenPrint", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean,
				Class276.Enum20.String
			}, level, verbose, message);
		}

		public void InitFileWriter()
		{
			method_8("InitFileWriter");
		}

		public string GetContent()//bald
		{
			return method_13("GetContent", Array.Empty<object>());
		}
	}
}
